package com.example.dw.admin.service;

import com.example.dw.admin.dto.PageRequestDTO;
import com.example.dw.admin.dto.CreateUserDTO;
import com.example.dw.admin.dto.UpdateUserDTO;
import com.example.dw.entity.User;

import java.util.List;
import java.util.Map;

/**
 * 管理端用户管理服务接口
 * @author system
 * @since 2024-01-01
 */
public interface AdminUserService {
    
    // ========== 用户信息管理 ==========
    
    /**
     * 分页获取用户信息
     */
    Map<String, Object> getUserByPage(PageRequestDTO pageRequest);
    
    /**
     * 根据ID获取用户信息
     */
    User getUserById(Integer userid);
    
    /**
     * 创建用户
     */
    void createUser(CreateUserDTO createUserDTO);
    
    /**
     * 更新用户信息
     */
    void updateUser(UpdateUserDTO updateUserDTO);
    
    /**
     * 删除用户
     */
    void deleteUser(Integer userid);
    
    /**
     * 获取所有用户
     */
    List<User> getAllUser(Integer role);
    
    // ========== 教师信息管理 ==========
    
    /**
     * 分页获取教师信息
     */
    Map<String, Object> getTeacherByPage(PageRequestDTO pageRequest);
    
    /**
     * 根据ID获取教师信息
     */
    User getTeacherById(Integer userid);
    
    // ========== 学生信息管理 ==========
    
    /**
     * 分页获取学生信息
     */
    Map<String, Object> getStudentByPage(PageRequestDTO pageRequest);
    
    /**
     * 根据ID获取学生信息
     */
    User getStudentById(Integer userid);
} 